package com.expert.miniapp.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * ChatMessageMapper - 消息数据访问接口
 *
 * @author System
 * @since 2025-10-21
 */
@Mapper
public interface ChatMessageMapper {

    /**
     * 插入新消息
     *
     * @param message 消息对象
     * @return 影响行数
     */
    int insert(ChatMessage message);

    /**
     * 批量插入消息
     *
     * @param messages 消息列表
     * @return 影响行数
     */
    int insertBatch(@Param("messages") List<ChatMessage> messages);

    /**
     * 查询会话的所有消息
     *
     * @param sessionId 会话ID
     * @return 消息列表（按message_order正序）
     */
    List<ChatMessage> findSessionMessages(@Param("sessionId") String sessionId);

    /**
     * 获取会话的最大消息顺序号
     *
     * @param sessionId 会话ID
     * @return 最大message_order，如果没有消息则返回null
     */
    Integer getMaxMessageOrder(@Param("sessionId") String sessionId);
}
